require "tag_holder"
class Projeto < ActiveRecord::Base
include(TagHolder) #tests on test/unit/projeto_tast
   #has_many :usuarios, :through => :anotacaos    
   #has_many :anotacaos
   
   #Cria uma lista de objetos projeto_tags.
   has_many :projeto_tags
   has_many :annotations
   
   #Cria um relacionamento entre projeto e tag atrav�s da classe de relacionamento
   #projeto_tag.
   #Permite o acesso a todas as tags do projeto assim: projeto.tags.
   #veja http://matthewman.net/2006/01/06/rails-activerecord-goes-through/
   has_many :tags, :through => :projeto_tags
   
   has_many :participacaos
   has_many :usuarios, :through => :participacaos

  validates_presence_of(:nome, :message => "O nome do projeto nao pode ser em branco");
  validates_length_of(:nome, :maximum => 20, :message => "Nome nao pode ser maior que 20 caracteres")
  validates_presence_of(:descricao, :message => "Um projeto de ter no minimo uma breve descri��o")  
  validates_length_of(:licensa, :maximum => 20, :message => "licensa nao pode ser maior que 20 caracteres")
  
  validates_presence_of(:data_inicio, :message => "Um projeto deve ter uma data de inicio") 
  
  
  #test: test_create_project_without_tags
  def validate
    if tags.empty?
      errors.add(:tags, "Digite pelo ou menos uma tag para esse projeto") 
    end  
  end  
    
end
